МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
Розрахункова робота з програмування
"Представлення в пам’яті комп’ютера статичних даних"
Завдання на розрахункову роботу
Індивідуальне завдання 1: Визначити внутрішнє представлення в пам’яті комп’ютера даних базових типів. Розглянути основні прості (цілі, дійсні, символьні, логічні) типи даних:
bool b = (25 * 5) % 10 * 11; //1
unsigned char ch2 = ’o’; //111
int i4 = -25 * 215; //-5375
double d2 = 275.25e+11; //27525000000000
2. Індивідуальне завдання 2: Визначити внутрішнє представлення в пам’яті комп’ютера даних похідних типів.
рядки
char *string9 = "34\xe5\\\\\\v3\x4g5\xdfvdfw""""f";
string9[0] = '5';
string9[2] = '8';
string9[4] = '8';
string9[6] = '2';
string9[8] = '6';
string9[10] = '6';
string9[12] = '1';
string9[14] = '4';
перерахування
enum color18 {
BLUE = -2,
GREEN,
CYAN,
RED,
BROWN,
GRAY = 9,
YELLOW,
WHІTE,
MAGENTA,
LІGHTGRAY,
DARKGRAY,
BLACK
} c1= CYAN,
c2= BROWN,
c3= DARKGRAY;
масиви
unsigned short array11[][2][4] = {{2,2,232}, '2','/'}
array11[0][0][0] = 0 * 25;
array11[0][0][1] = 9 * 25;
array11[0][0][2] = 5 * 25;
array11[0][0][3] = 8 * 25;
array11[0][1][0] = 8 * 25;
array11[0][1][1] = 2 * 25;
array11[0][1][2] = 6 * 25;
array11[0][1][3] = 6 * 25;
array11[1][0][0] = 1 * 25;
array11[1][0][1] = 4 * 25;
структури
struct str3 {
double a;
unsigned e:6;
int d;
unsigned b:5;
unsigned :3;
char c[7];
wchar_t f;
}str;
str.a = 25.275;
str.b = 9 * 1 * 124;
str.c[0] = 'S';
str.c[1] = 'o';
str.c[2] = 'p';
str.c[3] = 'u';
str.c[4] = 's';
str.d = 764 * 9 * 8;
str.e = 25 * 11 * 36;
str.f = 4;
об’єдняння
union un20{
int b;
struct{
char c;
double e;
};
struct{
double f;
char a[10];
};
}un;
un.e = 1 * 325 + 1991 * 25;
un.c = 25 * (11 + 9) * 100;
un.a[0] = '2';
un.a[1] = '6';
un.a[2] = '6';
un.a[3] = '1';
un.a[4] = '4';
Зміст
Теоретична частина
Система тестів
Завдання 1: Внутрішні формати базових типів
2.1.1. Змінна логічного типу
2.1.2. Змінна символьного типу
2.1.3. Змінна цілого типу
2.1.4. Змінна дійсного типу
Завдання 2: Внутрішні формати похідних типів
3.2.1. Рядок символів
3.2.2. Перерахування
3.2.3. Масив
3.2.4. Структура
3.2.5. Об'єднання
Результати виконання програми
Висновки
Список літератури
Додатки
Вступ
В даній розрахунковій роботі буде розглянуто представлення в пам’яті основних типів даних мови С++. В першому завданні буде розглянуто представлення даних базових типів, а саме: логічного, символьного, цілого та дійсного типу даних, в другому завданні – дані похідних типів: рядки символів, переліки, масиви, структури та об’єднання. Дані задачі допоможуть зрозуміти принципи збереження даних в оперативній пам’яті. Це дозволить, в свою чергу, підвищити ефективність програмних продуктів і оптимізувати їх роботу найбільш ефективно використовуючи типи даних. Також це дасть змогу зробити програму компактною зекономити пам'ять комп’ютера і машинний час. Отже розуміння способу представлення даних в пам’яті комп’ютера має велике практичне значення.
Теоретична частина
В пам'яті комп'ютера змінна типу bool займає 1 байт. Логічні значення можна асоціювати зі значеннями типу int: значенню false відповідає нуль, значенню true відповідають всі інші числа. В арифметичних і логічних виразах логічні значення перетворюються в цілі числа. Арифметичні та бітові логічні операції виконуються над перетвореними величинами. Якщо результат приводиться знову до логічного типу, то 0 перетворюється в false, а ненульове значення перетворюється в true. (true - в пам’яті комп’ютера змінна х зберігається як послідовність: 0000 0000; false як послідовність: 0000 0001)
Ідентифікатором символьного типу є ключове слово char. Символьні константи (символьні літерали) можна представляти як: клавіатурні: '1','s','Y' – записуються як символи в одинарних лапках; кодові: '\n','\\','\?', які використовуються для представлення деяких керуючи...